const _axios = require('axios');

const _logs = require('../logs');

const CancelToken = _axios.CancelToken;

const instance = _axios.create({
	baseURL: '/',
	timeout: 10000,
	headers: {'Content-Type': 'application/json'}
});

/**
 * @description: 请求拦截器
 * @author: 王琛
 * @Date: 2023-09-18 13:40:50
 * @param {*}
 * @return {*}
 */
instance.interceptors.request.use(function (config) {
	_logs.normal.info(`请求地址${config.url}`)
	// 在发送请求之前做些什么
	return config;
}, function (error) {
	_logs.err.error(`请求错误${error}`)
	// 对请求错误做些什么
	return Promise.reject(error);
});


/**
 * @description: 响应拦截器
 * @author: 王琛
 * @Date: 2023-09-18 13:41:01
 * @param {*}
 * @return {*}
 */
instance.interceptors.response.use(function (response) {
	
	
	const {data} = response;
	
	if (data.code === 200 || data.code === 0) {
		return data;
	} else {
		throw new Error(data?.message || '请求失败');
	}
	
	
}, function (error) {
	
	_logs.err.info(`响应错误${error}`)
	// 对响应错误做点什么
	return Promise.reject(error);
});


module.exports = instance;